Plasma Debit
m0t0k1ch1.icon Plasma Debit の概要を把握する
m0t0k1ch1.icon Plasma Cash の亜種ではあるので、Plasma Cash との違いを意識しながら
---.icon
Mechanics
In Plasma Cash, the transaction Merkle tree is divided into slots, each of which stores a fixed denomination of ETH (the amount that was deposited) and tracks a public key. Each transaction in that slot updates the public key currently associated with that coin.
Plasma Cash では、トランザクションの Merkle tree の leaf はスロットであり、各スロットは一定量の ETH(デポジットされた量)を保持し、保有者の公開鍵を追跡する。各トランザクションは、そのコインと現在紐づいている公開鍵を更新する。
In Plasma Debit, each slot would track not only a public key, but a number a between 0 and v, where v is the total amount of ETH that was deposited into that account on the main chain. v does not change, but a can vary in each transaction, and represents the portion of the current coin that is owned by the owner. The remainder of the money deposited in that slot is owned by the operator. A transaction in which a is changed, like any other transaction, requires a signature from the current coinholder. (The operator does not need to sign the update, since their consent is implied by their inclusion of the transaction.)
Plasma Debit では、各スロットが公開鍵だけでなく、$ 0以上$ v以下の数字$ aを追跡する。$ vは、親チェーンでデポジットされた ETH の総量である。$ vは変化しないが、$ aは各トランザクションによって変化し、現在のそのコインが部分的に保有されていることを表す。そのスロットにデポジットされた金額の残りはオペレータに保有されている。$ aを変化させるトランザクションは、その他のトランザクションと同様、現在の保有者による署名を必要とする(オペレータはそのトランザクションをブロックに含めることで暗黙的に合意するので、このときに署名する必要はない)。
m0t0k1ch1.icon スロットは口座で$ aは口座残高、的なイメージ
When a coin is withdrawn, the coinholder receives a, and the operator receives v – a. (The exit rules need to be altered slightly to allow either the owner or the operator to exit a coin.)
コインが引き出されるとき、コインの保有者は$ aを受け取り、オペレータは$ v - aを受け取る(保有者でもオペレータでもコインを exit できるよう、exit のルールを多少変更する必要がある)。
m0t0k1ch1.icon なるほど、$ v - aがオペレータに支払う手数料となると
This would allow users to pay arbitrarily small fees to the operator. (Vitalik proposed almost this exact solution to the fees problem here). これにより、ユーザーは任意の少量の手数料をオペレータに支払うことができる(手数料問題に対する解決策として、Vitalik が ここ で同様の提案をしている)。 Even more usefully, however, this allows any user on the Plasma Cash chain to pay any amount to any other user on the chain (as long as the recipient’s coin is undercapitalized by a sufficient amount). They can do this by creating an atomic transaction (i.e. a transaction that updates multiple coins and is only valid if it is included in both slots in the same block), where the sender’s account is debited by that amount, and the recipient’s account is credited by that amount.
しかし、より有用な点は、(受け手のコインが十分な量だけ不足している限り)Plasma Cash チェーンのユーザーが任意のユーザーに任意の量のコインを支払うことができるようになることである。これは、アトミックなトランザクション(複数のコイン残高を更新するようなトランザクションであり、同じブロックに両方のスロットの更新が含まれる場合のみ正当となる)によって行われる。これにより、送り手の口座からは送った量が引き落とされ、受け手の口座には受け取った量が入金される。
m0t0k1ch1.icon 口座に十分な空き($ v - a)がないと受け取れないってのはちょっと不便なような
m0t0k1ch1.icon ん?そもそもどうやったら空きが生まれるんだ??と思ったけど、オペレータへの支払いが基本なんだろうか
m0t0k1ch1.icon オペレータが$ vを引き上げる要求をすることもできるか
For example, suppose Alice has an 8 ETH coin with a 4 ETH current balance, and Bob has a 5 ETH coin with a 3 ETH current balance. Alice would be able to send 1.3 ETH to Bob, by creating a transaction where the balance of her coin is reduced to 2.7, and the balance of Bob’s coin is increased to 4.3. The operator will accept and include the transaction (in both Alice’s and Bob’s slots) because it does not change the operator’s total balance (which remains, with respect to those two coins, at 6 ETH).
例えば、Alice が 8 ETH 分のコインを保有しており、現在の残高が 4 ETH だとする。また、Bob は 5 ETH 分のコインを保有しており、現在の残高が 3 ETH だとする。Alice は、自身の残高を 2.7 ETH に減らし Bob の残高を 4.3 ETH に増やすようなトランザクションをつくることで、Bob に 1.3 ETH を送ることができる。オペレータは(Alice と Bob 双方の口座について)このトランザクションを承認するだろう。なぜなら、このトランザクションによってオペレータの合計残高は変化しないから(これら 2 つのコインに関するオペレータの残高は 6 ETH のまま)。
---.icon
Theory
The above explanation defined Plasma Debit as Plasma Cash with partial balances.
上記の説明より、Plasma Debit は部分的な残高を許容した Plasma Cash だと定義される。
However, there’s an equivalent way of approaching this construction. Each Plasma Debit coin is essentially equivalent to a bidirectional payment channel (similar to the multisig-based payment channels used in the Lightning Network) between the current coin owner and the operator. The only difference is that the state of the payment channel is regularly notarized on the main chain (in a Merkle root with the operator’s other channels).
しかし、この構成にアプローチする等価な方法がある。各 Plasma Debit コインは、現在のコイン保有者とオペレータ間の双方向ペイメントチャネル(Lightning Network で使用されるマルチシグに基づいたペイメントチャネルと似ている)と本質的に等価である。唯一の違いは、ペイメントチャネルの状態が(各チャネルから構成される Merkle root に含まれることで)定期的に親チェーンで公証されることである。
This notarization gives Plasma Debit coins two significant capabilities that payment channels do not have:
この公証によって、Plasma Debit コインは、ペイメントチャネルにはない 2 つの重要な性質を備えていると言える。
1. Assignability. A Plasma Debit coin can be transferred from one owner to another (the same way a Plasma Cash coin can). This is equivalent to allowing one of the participants in a payment channel to permanently assign their interest in that payment channel to some new party, which is not possible with previous payment channel constructions. Most significantly, this allows new parties to join the payment network without doing an on-chain transaction (which is a disadvantage of the Lightning Network).
1. Assignability
Plasma Debit コインはある保有者から他の保有者に譲渡することができる(Plasma Cash コインと同じ方法で)。これは、ペイメントチャネルの参加者がそのチャネルにおける権利を新しい参加者に永久に譲渡することと等価であるが、これは既存のペイメントチャネルでは不可能である。最も重要なのは、これによって新しいユーザーが親チェーンでのトランザクションなしでペイメントネットワークに参加できることである(これができないのは Lightning Network の欠点である)。
m0t0k1ch1.icon これは Plasma Debit が、というよりも Plasma Cash の時点で既に備えていた性質をこう解釈できるという話
2. Atomicity. Plasma Debit coins can be updated atomically with other coins on the same Plasma chain, without the need for HTLCs. (There are limbo-exit-like edge cases around data availability that make this slightly less of a win than it seems at first, but it is still potentially powerful.)
2. Atomicity
Plasma Debit コインは、HTLC なしで同じ Plasma チェーンの他のコインとアトミックに取引できる(データの可用性に関して limbo exit のようなエッジケースを加味すると、atomicity の魅力は幾分損なわれてしまうが、潜在的には強力である)。
m0t0k1ch1.icon limbo exit は、withhold された in-flight なトランザクションを救うための exit のことだと思う
---.icon
Limitations
・To receive one of these kinds of transfers, the recipient must have (or receive) a coin that is undercapitalized by at least the amount of the transfer. This is similar to the constraints on Lightning Network channels, where the net balance between yourself and your counterparty is constrained by the balance that was initially deposited into your channel, and may require significant capital lockup (particularly on the part of the operator). However, the assignability of channels should make it easier to work around these limitations.
受け手は少なくとも受け取る量だけコインが不足していなければならない。これは Lightning Network のチャネルの構成と似ており、あなたとあなたの取引相手の間の正味の残高は、最初にチャネルにデポジットされた残高によって制限されるし、ロックアップも要求される(特にオペレータに関して)。しかし、チャネルの assignability によってこれらの制約を回避することが容易になるはずである。
・This simple design only works for Plasma Cash chains with single operators. However, you could implement a more general form of this idea using merged and split coins, as described below, which would not be subject to this limitation.
このシンプルな設計は Plasma Cash チェーンが単独のオペレータによって運用されている場合のみ機能する。しかし、以下で説明するようなコインの結合・分割を利用して、このアイデアをより一般化して実装することはできるだろう(これについては、この制約の対象にはならない)。
---.icon
Extensions
m0t0k1ch1.icon まだ机上の空論なのではという話が多いが、検討する価値がある拡張が並んでいるように思う
・Updates to the balance would not actually need to be included in the Plasma blocks, since they require only the mutual consent of the coinholder and operator. The exit game could be altered relatively easily to allow the operator and current coinholder to instantly update their balance by exchanging signatures on a state update (which would then be almost exactly equivalent to a payment channel). The only transactions that need to be notarized (i.e. included in Plasma blocks) are those that either change the owner of the channel, or involve multiple coins.
実際、残高更新は Plasma ブロックに含まれる必要はない。なぜなら、必要なのはコイン保有者とオペレータの相互同意のみだからである。オペレータと現在のコインホルダーが状態更新に対する署名を交換することで残高を即時更新できるにするように exit ゲームを変更することは比較的簡単である(これはペイメントチャネルとほとんど等価である)。公証される(Plasma ブロックに含める)必要があるトランザクションは、チャネルのオーナーを変更するものや複数のコインを含むものである。
・If coins can be split into arbitrary denominations and remerged with their siblings (as has been proposed, i.e., here), you could implement a more general version of this, where the “residual” amount of the coin could be owned by any party, not just the operator, and where any party could act as a liquidity provider for routing payments (by agreeing to remerge and resplit separate coins atomically). This is more complex may be more powerful, and might be necessary if the Plasma Cash chain has more than one operator. コインが任意の単位に分割でき、その兄弟を(ここ で提案されているように)再結合できる場合、より一般的なバージョンの Plasma Debit を実装できるだろう。その場合、コインの「残余」量を保有できる人はオペレータに限られず、誰もが支払いをルーティングする流動性プロバイダとして活動できる(別々のコインのアトミックな再結合・再分割に同意することで)。これはより複雑だがより強力かもしれない。また、Plasma Cash チェーンが複数のオペレータによって運用されている場合に必要なことかもしれない。 ・By increasing the expressiveness of the “scripting language” beyond just single public keys, we could adapt Plasma Debit to permit coins to act as more sophisticated state channels. Indeed, if we add support for hash locks and timeouts, Plasma Debit accounts could implement HTLCs, and thus have feature parity with Lightning Network channels. This would essentially allow a Plasma Cash chain operator to act as a Lightning hub, and interoperate with Lightning network participants (including participants on other cryptocurrencies), but with the added benefits of Plasma Cash (such as the ability to transfer ownership of a state channel from one user to another).
1 つの公開鍵を持つことにとどまらず「スクリプト言語」の表現力を高めることで、Plasma Debit のコインをより洗練されたステートチャネルとして機能させることができるだろう。実際、ハッシュロックやタイムアウトのサポートを追加した場合、Plasma Debit のアカウントは HTLC を実装でき、Lightning Network のチャネルと等価な機能を持つことになる。これにより、Plasma Cash チェーンのオペレータは、本質的には Lightning ハブとして機能することとなり、(他の暗号通貨も含めた)Lightning Network 参加者との相互運用が可能となる。もちろん、Plasma Cash の利点(ステートチャネルの所有権をあるユーザーから別のユーザーに譲渡できるという特徴)は健在である。
m0t0k1ch1.icon 「コイン」は、コイン保有者・オペレータ間のチャネルと考える
・It may be possible to implement transactions that are atomic across multiple Plasma chains (though this will need to be a subject for another post). If these are possible, then it would be possible to use Plasma Debit to make cross-Plasma-chain payments without HTLCs (as long as someone has an account on both chains and is willing to route the payment).
複数の Plasma チェーンをまたぐアトミックなトランザクションを実装することが可能かもしれない(これは別の投稿として取り上げる必要がありそうだが)。これが可能であれば、HTLC 不要なクロス Plasma チェーンペイメントのために Plasma Debit を使うことができる可能性がある(双方のチェーンにアカウントを保有しており、支払いをルーティングしたい人であれば)。
---.icon
m0t0k1ch1.icon memo
端的に言うと、Plasma Cash のコインを最大容量がデポジット額なスロットと解釈し、これをコイン保有者とオペレータ間のペイメントチャネルとして機能させたらどうか、という提案。ペイメントチャネルを理解していれば、この提案自体はイメージしやすい話だが、Assignability と Atomicity を保証する具体的な方法を考えるのは結構ハードル高いような気はする。どうなんだろうか。
また、Plasma Debit は、Plasma Cash が抱えている以下のような課題に対するソリューションとして見ることもできる。Extensions には結構飛躍した話が多いが、提案としてきちんと着地させてるあたりは流石 Dan Robinson 氏という感じ。
コインが結合・分割できない(デポジットした単位で固定)
オペレータの手数料徴収方法が確立していない
---.icon
m0t0k1ch1.icon 呟き
クロス Plasma チェーンなトランザクションが当然な世界になって exit する人が減り(極論誰も exit しようと思わなくなり)、(既存のスロットを譲渡されて)親チェーンを経由せずに Plasma チェーンを利用する人も増えてきた場合、大多数のユーザーは盲目的に Plasma チェーンを使うようになってしまうんだろうなあ(人間は自分自身に魔法をかけるのが得意だし)。そうすると、不正な exit に対して challenge するモチベーションも徐々に引き下がっていってしまうのではなかろうかというのは懸念。また、どこかで金本位制の崩壊と同じようなことが起こるのではないのかしらと、ふと考えてしまった。もやもや。